home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / pascal / tvtool2.zip / TV3D.PAS < prev    next >
Pascal/Delphi Source File  |  1993-07-20  |  13KB  |  120 lines

  1. {*
  2. *
  3. *   Copyright (c) 1992,93 by Richard W. Hansen
  4. *
  5. *   This source code will compile.
  6. *   Full source code available to registered users.
  7. *
  8. *}
  9. (* This file was mangled by Mangler 1.10 (c) Copyright 1993 by Berend de Boer *)
  10.  UNIT TV3D ;{$B+} {$X+} {$V-} {$I TVDEFS.INC} INTERFACE USES TVTYPE , APP , DIALOGS , DRIVERS , OBJECTS , VIEWS ;
  11. CONST C3DDIALOG =#137#139#140#165#166#167#168#169#170#141+ #142#143#144#145#146#152#153#154#149#150+
  12. #151#160#161#163#164#156#157#158#159#171+ #155#000#147#148#162;C3DBUTTON =#10#14#11#12#13#15;C3DHISTORY =#22#23#35;
  13. C3DOUTLINE =#33#34;C3DTOOLBUTTON =#10#14#11#12#11#11;CONST BUTTONSELECT :TBXFRAMEARRAY ='╔╗╚╝║║══';
  14. BUTTONNORMAL :TBXFRAMEARRAY ='┌┐└┘││──';BUTTONPRESS :TBXFRAMEARRAY ='┌┐└┘││──';OUTLINENORMAL :TBXFRAMEARRAY ='┌┐└┘││──';
  15. TYPE PBX3DBUTTON =^TBX3DBUTTON ;TBX3DBUTTON =OBJECT (TBUTTON)DOWN :BOOLEAN ;CONSTRUCTOR INIT (VAR BOUNDS :TRECT ;
  16. ATITLE :TTITLESTR ;ACOMMAND :WORD ;AFLAGS :WORD );CONSTRUCTOR LOAD (VAR S :TSTREAM );PROCEDURE DRAW ;VIRTUAL;
  17. PROCEDURE DRAWTITLE (ATITLE :TTITLESTR ;COLOR :WORD ;ROW :WORD );VIRTUAL;PROCEDURE GETFRAME (VAR F :TBXFRAMEARRAY );
  18. VIRTUAL;FUNCTION GETPALETTE :PPALETTE ;VIRTUAL;PROCEDURE HANDLEEVENT (VAR EVENT :TEVENT );VIRTUAL;END ;
  19. PBX3DOUTLINE =^TBX3DOUTLINE ;TBX3DOUTLINE =OBJECT (TVIEW)CONSTRUCTOR INIT (VAR BOUNDS :TRECT );PROCEDURE DRAW ;VIRTUAL;
  20. PROCEDURE GETFRAME (VAR F :TBXFRAMEARRAY );VIRTUAL;FUNCTION GETPALETTE :PPALETTE ;VIRTUAL;END ;
  21. PBX3DHISTORY =^TBX3DHISTORY ;TBX3DHISTORY =OBJECT (THISTORY)CONSTRUCTOR INIT (VAR BOUNDS :TRECT ;ALINK :PINPUTLINE ;
  22. AHISTORYID :WORD );PROCEDURE DRAW ;VIRTUAL;FUNCTION GETPALETTE :PPALETTE ;VIRTUAL;END ;PBX3DDIALOG =^TBX3DDIALOG ;
  23. TBX3DDIALOG =OBJECT (TDIALOG)FUNCTION GETPALETTE :PPALETTE ;VIRTUAL;PROCEDURE INSERT (P :PVIEW );VIRTUAL;END ;
  24. PBX3DTOOLBUTTON =^TBX3DTOOLBUTTON ;TBX3DTOOLBUTTON =OBJECT (TBX3DBUTTON)PROCEDURE GETFRAME (VAR F :TBXFRAMEARRAY );
  25. VIRTUAL;FUNCTION GETPALETTE :PPALETTE ;VIRTUAL;END ;PBX3DTOOLBAR =^TBX3DTOOLBAR ;
  26. TBX3DTOOLBAR =OBJECT (TBX3DDIALOG)ISVERTICAL :BOOLEAN ;LASTX :WORD ;LASTY :WORD ;CONSTRUCTOR INIT (VAR BOUNDS :TRECT ;
  27. VERTICAL :BOOLEAN );CONSTRUCTOR LOAD (VAR S :TSTREAM );PROCEDURE ADDTOOL (ATITLE :TTITLESTR ;ACOMMAND :WORD );
  28. PROCEDURE INITFRAME ;VIRTUAL;PROCEDURE SIZELIMITS (VAR MIN ,MAX:TPOINT );VIRTUAL;PROCEDURE STORE (VAR S :TSTREAM );END ;
  29. PROCEDURE REGISTERTV3D ;CONST RBX3DBUTTON :TSTREAMREC =(OBJTYPE :5000 ;VMTLINK :OFS (TYPEOF (TBX3DBUTTON )^);LOAD :@
  30. TBX3DBUTTON . LOAD ;STORE :@ TBX3DBUTTON . STORE );CONST RBX3DOUTLINE :TSTREAMREC =(OBJTYPE :5001 ;
  31. VMTLINK :OFS (TYPEOF (TBX3DOUTLINE )^);LOAD :@ TBX3DOUTLINE . LOAD ;STORE :@ TBX3DOUTLINE . STORE );
  32. CONST RBX3DHISTORY :TSTREAMREC =(OBJTYPE :5002 ;VMTLINK :OFS (TYPEOF (TBX3DHISTORY )^);LOAD :@ TBX3DHISTORY . LOAD ;
  33. STORE :@ TBX3DHISTORY . STORE );CONST RBX3DDIALOG :TSTREAMREC =(OBJTYPE :5003 ;VMTLINK :OFS (TYPEOF (TBX3DDIALOG )^);
  34. LOAD :@ TBX3DDIALOG . LOAD ;STORE :@ TBX3DDIALOG . STORE );CONST RBX3DTOOLBUTTON :TSTREAMREC =(OBJTYPE :5004 ;
  35. VMTLINK :OFS (TYPEOF (TBX3DTOOLBUTTON )^);LOAD :@ TBX3DTOOLBUTTON . LOAD ;STORE :@ TBX3DTOOLBUTTON . STORE );
  36. CONST RBX3DTOOLBAR :TSTREAMREC =(OBJTYPE :5005 ;VMTLINK :OFS (TYPEOF (TBX3DTOOLBAR )^);LOAD :@ TBX3DTOOLBAR . LOAD ;
  37. STORE :@ TBX3DTOOLBAR . STORE );IMPLEMENTATION CONSTRUCTOR TBX3DBUTTON.INIT (VAR BOUNDS:TRECT;ATITLE:TTITLESTR;
  38. ACOMMAND:WORD;AFLAGS:WORD);BEGIN INHERITED INIT(BOUNDS , ATITLE , ACOMMAND , AFLAGS );DOWN := FALSE ;END ;
  39. CONSTRUCTOR TBX3DBUTTON.LOAD (VAR S:TSTREAM);BEGIN INHERITED LOAD(S );DOWN := FALSE ;END ;PROCEDURE TBX3DBUTTON.DRAW ;
  40. VAR O10OO0O0OOOO1:TBXFRAMEARRAY;OOIl:WORD;OOIO:WORD;OOIO01I11II0:WORD;OO01IOOl0II:WORD;OIO1:TDRAWBUFFER;BEGIN GETFRAME
  41. (O10OO0O0OOOO1 );IF (STATE AND SFDISABLED <> 0 )THEN OO01IOOl0II := GETCOLOR ($0404 )ELSE IF (STATE AND SFSELECTED =0
  42. )AND AMDEFAULT THEN OO01IOOl0II := GETCOLOR ($0506 )ELSE IF (STATE AND SFSELECTED <> 0 )THEN OO01IOOl0II := GETCOLOR
  43. ($0606 )ELSE OO01IOOl0II := GETCOLOR ($0503 );IF DOWN THEN OOIO01I11II0 := GETCOLOR ($0201 )ELSE OOIO01I11II0 := GETCOLOR
  44. ($0102 );OOIO := SIZE.X - 1 ;MOVECHAR (OIO1 , O10OO0O0OOOO1 [ 7 ] , WORDREC (OOIO01I11II0 ). HI , SIZE.X );WORDREC (OIO1
  45. [ OOIO ] ). HI := WORDREC (OOIO01I11II0 ). LO ;WORDREC (OIO1 [ 0 ] ). LO := BYTE (O10OO0O0OOOO1 [ 1 ] );WORDREC (OIO1 [
  46. OOIO ] ). LO := BYTE (O10OO0O0OOOO1 [ 2 ] );WRITELINE (0 , 0 , SIZE.X , 1 , OIO1 );MOVECHAR (OIO1 , O10OO0O0OOOO1 [ 8 ] ,
  47. WORDREC (OOIO01I11II0 ). LO , SIZE.X );WORDREC (OIO1 [ 0 ] ). HI := WORDREC (OOIO01I11II0 ). HI ;WORDREC (OIO1 [ 0 ] ).
  48. LO := BYTE (O10OO0O0OOOO1 [ 3 ] );WORDREC (OIO1 [ OOIO ] ). LO := BYTE (O10OO0O0OOOO1 [ 4 ] );WRITELINE (0 , SIZE.Y - 1 ,
  49. SIZE.X , 1 , OIO1 );MOVECHAR (OIO1 , ' ', WORDREC (OOIO01I11II0 ). HI , SIZE.X );WORDREC (OIO1 [ 0 ] ). LO := BYTE
  50. (O10OO0O0OOOO1 [ 5 ] );WORDREC (OIO1 [ OOIO ] ). LO := BYTE (O10OO0O0OOOO1 [ 6 ] );WORDREC (OIO1 [ OOIO ] ). HI :=
  51. WORDREC (OOIO01I11II0 ). LO ;FOR OOIl := 1 TO SIZE.Y - 2  DO WRITELINE (0 , OOIl , SIZE.X , 1 , OIO1 );OOIO := POS (^M ,
  52. TITLE ^);IF (OOIO =0 )THEN OOIl := SIZE.Y DIV 2 ELSE OOIl := (SIZE.Y - 1 )DIV 2 ;IF (OOIO =0 )THEN DRAWTITLE (TITLE ^,
  53. OO01IOOl0II , OOIl )ELSE BEGIN DRAWTITLE (COPY (TITLE ^, 1 , OOIO - 1 ), OO01IOOl0II , OOIl );DRAWTITLE (COPY (TITLE ^,
  54. OOIO + 1 , LENGTH (TITLE ^)), OO01IOOl0II , OOIl + 1 );END ;END ;PROCEDURE TBX3DBUTTON.DRAWTITLE (ATITLE:TTITLESTR;
  55. COLOR:WORD;ROW:WORD);VAR OOIO:WORD;OO01:WORD;OIO1:TDRAWBUFFER;BEGIN OO01 := SIZE.X - 2 ;IF (FLAGS AND BFLEFTJUST <> 0
  56. )THEN OOIO := 0 ELSE OOIO := (OO01 - CSTRLEN (ATITLE ))DIV 2 ;MOVECHAR (OIO1 , ' ', WORDREC (COLOR ). LO , OO01 );
  57. MOVECSTR (OIO1 [ OOIO ] , ATITLE , COLOR );WRITELINE (1 , ROW , OO01 , 1 , OIO1 );END ;PROCEDURE TBX3DBUTTON.GETFRAME
  58. (VAR F:TBXFRAMEARRAY);BEGIN IF DOWN THEN F := BUTTONPRESS ELSE IF (STATE AND SFSELECTED <> 0 )THEN F := BUTTONSELECT ELSE
  59. F := BUTTONNORMAL ;END ;FUNCTION TBX3DBUTTON.GETPALETTE :PPALETTE ;CONST OO10:STRING [ LENGTH(C3DBUTTON)] =C3DBUTTON;
  60. BEGIN GETPALETTE := @ OO10 ;END ;PROCEDURE TBX3DBUTTON.HANDLEEVENT (VAR EVENT:TEVENT);VAR OO1I:TRECT;OO10:TPOINT;
  61. BEGIN GETEXTENT (OO1I );IF (EVENT.WHAT =EVMOUSEDOWN )THEN BEGIN MAKELOCAL (EVENT.WHERE , OO10 );IF NOT OO1I.CONTAINS
  62. (OO10 )THEN CLEAREVENT (EVENT );IF (FLAGS AND BFGRABFOCUS <> 0 )THEN TVIEW.HANDLEEVENT (EVENT );IF (EVENT.WHAT
  63. =EVMOUSEDOWN )THEN BEGIN DOWN := FALSE ;REPEAT MAKELOCAL (EVENT.WHERE , OO10 );IF (DOWN <> OO1I.CONTAINS (OO10 ))THEN
  64. BEGIN DOWN := NOT DOWN ;DRAW ;END ;UNTIL NOT MOUSEEVENT (EVENT , EVMOUSEMOVE );IF DOWN THEN BEGIN DOWN := FALSE ;PRESS ;
  65. DRAW ;END ;CLEAREVENT (EVENT );END ;END ;INHERITED HANDLEEVENT(EVENT );END ;CONSTRUCTOR TBX3DOUTLINE.INIT
  66. (VAR BOUNDS:TRECT);VAR OO1I:TRECT;BEGIN OO1I := BOUNDS ;OO1I.GROW (1 , 1 );INHERITED INIT(OO1I );END ;
  67. FUNCTION TBX3DOUTLINE.GETPALETTE :PPALETTE ;CONST OO10:STRING [ LENGTH(C3DOUTLINE)] =C3DOUTLINE;BEGIN GETPALETTE := @
  68. OO10 ;END ;PROCEDURE TBX3DOUTLINE.GETFRAME (VAR F:TBXFRAMEARRAY);BEGIN F := OUTLINENORMAL ;END ;
  69. PROCEDURE TBX3DOUTLINE.DRAW ;VAR O10OO0O0OOOO1:TBXFRAMEARRAY;OOIO01I11II0:WORD;OOIO:WORD;OOIl:WORD;OIO1:TDRAWBUFFER;
  70. BEGIN GETFRAME (O10OO0O0OOOO1 );OOIO01I11II0 := GETCOLOR ($0102 );OOIO := SIZE.X - 1 ;MOVECHAR (OIO1 , O10OO0O0OOOO1 [ 7
  71. ] , WORDREC (OOIO01I11II0 ). LO , SIZE.X );WORDREC (OIO1 [ OOIO ] ). HI := WORDREC (OOIO01I11II0 ). HI ;WORDREC (OIO1 [ 0
  72. ] ). LO := BYTE (O10OO0O0OOOO1 [ 1 ] );WORDREC (OIO1 [ OOIO ] ). LO := BYTE (O10OO0O0OOOO1 [ 2 ] );WRITELINE (0 , 0 ,
  73. SIZE.X , 1 , OIO1 );MOVECHAR (OIO1 , O10OO0O0OOOO1 [ 8 ] , WORDREC (OOIO01I11II0 ). HI , SIZE.X );WORDREC (OIO1 [ 0 ] ).
  74. HI := WORDREC (OOIO01I11II0 ). LO ;WORDREC (OIO1 [ 0 ] ). LO := BYTE (O10OO0O0OOOO1 [ 3 ] );WORDREC (OIO1 [ OOIO ] ). LO
  75. := BYTE (O10OO0O0OOOO1 [ 4 ] );WRITELINE (0 , SIZE.Y - 1 , SIZE.X , 1 , OIO1 );FOR OOIl := 1 TO SIZE.Y - 2
  76.  DO BEGIN WRITECHAR (0 , OOIl , O10OO0O0OOOO1 [ 5 ] , 2 , 1 );WRITECHAR (OOIO , OOIl , O10OO0O0OOOO1 [ 6 ] , 1 , 1 );
  77. END ;END ;CONSTRUCTOR TBX3DHISTORY.INIT (VAR BOUNDS:TRECT;ALINK:PINPUTLINE;AHISTORYID:WORD);BEGIN BOUNDS.GROW (0 , 1 );
  78. INHERITED INIT(BOUNDS , ALINK , AHISTORYID );END ;PROCEDURE TBX3DHISTORY.DRAW ;VAR OOIO01I11II0:WORD;OOIO:WORD;
  79. OIO1:TDRAWBUFFER;BEGIN OOIO := SIZE.X - 1 ;OOIO01I11II0 := GETCOLOR ($0203 );MOVECHAR (OIO1 , BUTTONNORMAL [ 7 ] ,
  80. WORDREC (OOIO01I11II0 ). HI , SIZE.X );WORDREC (OIO1 [ OOIO ] ). HI := WORDREC (OOIO01I11II0 ). LO ;WORDREC (OIO1 [ 0 ]
  81. ). LO := BYTE (BUTTONNORMAL [ 1 ] );WORDREC (OIO1 [ OOIO ] ). LO := BYTE (BUTTONNORMAL [ 2 ] );WRITELINE (0 , 0 , SIZE.X
  82. , 1 , OIO1 );MOVECHAR (OIO1 , BUTTONNORMAL [ 8 ] , WORDREC (OOIO01I11II0 ). LO , SIZE.X );WORDREC (OIO1 [ 0 ] ). HI :=
  83. WORDREC (OOIO01I11II0 ). HI ;WORDREC (OIO1 [ 0 ] ). LO := BYTE (BUTTONNORMAL [ 3 ] );WORDREC (OIO1 [ OOIO ] ). LO := BYTE
  84. (BUTTONNORMAL [ 4 ] );WRITELINE (0 , SIZE.Y - 1 , SIZE.X , 1 , OIO1 );MOVECHAR (OIO1 , ' ', WORDREC (OOIO01I11II0 ). HI ,
  85. SIZE.X );WORDREC (OIO1 [ 0 ] ). LO := BYTE (BUTTONNORMAL [ 5 ] );WORDREC (OIO1 [ OOIO ] ). LO := BYTE (BUTTONNORMAL [ 6 ]
  86. );WORDREC (OIO1 [ OOIO ] ). HI := WORDREC (OOIO01I11II0 ). LO ;WORDREC (OIO1 [ 1 ] ). LO := 25 ;OOIO01I11II0 := GETCOLOR
  87. ($01 );WORDREC (OIO1 [ 1 ] ). HI := WORDREC (OOIO01I11II0 ). LO ;WRITELINE (0 , 1 , SIZE.X , 1 , OIO1 );END ;
  88. FUNCTION TBX3DHISTORY.GETPALETTE :PPALETTE ;CONST OO10:STRING [ LENGTH(C3DHISTORY)] =C3DHISTORY;BEGIN GETPALETTE := @
  89. OO10 ;END ;FUNCTION TBX3DDIALOG.GETPALETTE :PPALETTE ;CONST OO10:STRING [ LENGTH(C3DDIALOG)] =C3DDIALOG;BEGIN GETPALETTE
  90. := @ OO10 ;END ;PROCEDURE TBX3DDIALOG.INSERT (P:PVIEW);VAR OO1I:TRECT;OIl0:PVIEW;BEGIN IF (P ^. OPTIONS AND OFFRAMED <> 0
  91. )THEN BEGIN P ^. GETBOUNDS (OO1I );OIl0 := NEW (PBX3DOUTLINE , INIT (OO1I ));INHERITED INSERT(OIl0 );END ;
  92. INHERITED INSERT(P );END ;PROCEDURE TBX3DTOOLBUTTON.GETFRAME (VAR F:TBXFRAMEARRAY);BEGIN IF DOWN THEN F := BUTTONPRESS
  93. ELSE F := BUTTONNORMAL ;END ;FUNCTION TBX3DTOOLBUTTON.GETPALETTE :PPALETTE ;CONST OO10:STRING [ LENGTH(C3DTOOLBUTTON)]
  94. =C3DTOOLBUTTON;BEGIN GETPALETTE := @ OO10 ;END ;CONSTRUCTOR TBX3DTOOLBAR.INIT (VAR BOUNDS:TRECT;VERTICAL:BOOLEAN);
  95. VAR OO1I:TRECT;OO10:PVIEW;BEGIN INHERITED INIT(BOUNDS , '');ISVERTICAL := VERTICAL ;SETSTATE (SFSHADOW , FALSE );OPTIONS
  96. := OPTIONS AND NOT OFTILEABLE AND NOT OFSELECTABLE OR OFFIRSTCLICK ;FLAGS := FLAGS AND NOT WFCLOSE ;GETEXTENT (OO1I );IF
  97. (FRAME <> NIL )THEN BEGIN LASTX := 1 ;LASTY := 1 ;OO1I.GROW (- 1 , - 1 );END ELSE BEGIN LASTX := 0 ;LASTY := 0 ;END ;
  98. OO10 := NEW (PVIEW , INIT (OO1I ));OO10 ^. SETSTATE (SFDISABLED , TRUE );OO10 ^. OPTIONS := OO10 ^. OPTIONS AND NOT
  99. OFSELECTABLE ;OO10 ^. GROWMODE := OO10 ^. GROWMODE OR GFGROWHIX OR GFGROWHIY ;INSERT (OO10 );END ;
  100. CONSTRUCTOR TBX3DTOOLBAR.LOAD (VAR S:TSTREAM);BEGIN INHERITED LOAD(S );S.READ (ISVERTICAL , SIZEOF (BOOLEAN ));S.READ
  101. (LASTX , SIZEOF (WORD ));S.READ (LASTY , SIZEOF (WORD ));END ;PROCEDURE TBX3DTOOLBAR.ADDTOOL (ATITLE:TTITLESTR;
  102. ACOMMAND:WORD);VAR OO1I:TRECT;OIO1:TRECT;OIO0O1I11lO:WORD;O10OI0O10I0O0:WORD;O10OOll1OlI01:WORD;O10OIO0l0I0Il:WORD;
  103. O1I10Ol1:WORD;O1I1Il0I:WORD;OIlIl0l11OO:WORD;OIIIlIOO0II:WORD;BEGIN O10OIO0l0I0Il := POS (^M , ATITLE );IF (O10OIO0l0I0Il
  104. =0 )THEN BEGIN O10OOll1OlI01 := 3 ;O10OI0O10I0O0 := CSTRLEN (ATITLE );END ELSE BEGIN O10OOll1OlI01 := 4 ;O10OI0O10I0O0 :=
  105. CSTRLEN (COPY (ATITLE , 1 , O10OIO0l0I0Il - 1 ));OIO0O1I11lO := CSTRLEN (COPY (ATITLE , O10OIO0l0I0Il + 1 , LENGTH
  106. (ATITLE )));IF (OIO0O1I11lO > O10OI0O10I0O0 )THEN O10OI0O10I0O0 := OIO0O1I11lO ;END ;O10OI0O10I0O0 := O10OI0O10I0O0 + 2 ;
  107. OO1I.A.X := LASTX ;OO1I.A.Y := LASTY ;OO1I.B.X := OO1I.A.X + O10OI0O10I0O0 ;OO1I.B.Y := OO1I.A.Y + O10OOll1OlI01 ;
  108. OIlIl0l11OO := SIZE.X ;OIIIlIOO0II := SIZE.Y ;IF (FRAME <> NIL )THEN BEGIN DEC (OIlIl0l11OO );DEC (OIIIlIOO0II );END ;IF
  109. (OO1I.B.Y > OIIIlIOO0II )THEN O1I1Il0I := OO1I.B.Y - OIIIlIOO0II ELSE O1I1Il0I := 0 ;IF (OO1I.B.X > OIlIl0l11OO )THEN
  110. O1I10Ol1 := OO1I.B.X - OIlIl0l11OO ELSE O1I10Ol1 := 0 ;GETBOUNDS (OIO1 );IF (O1I1Il0I <> 0 )THEN BEGIN OIO1.B.Y :=
  111. OIO1.B.Y + O1I1Il0I ;IF (OIO1.B.Y > DESKTOP ^. SIZE.Y )THEN EXIT ;END ;IF (O1I10Ol1 <> 0 )THEN BEGIN OIO1.B.X := OIO1.B.X
  112. + O1I10Ol1 ;IF (OIO1.B.X > DESKTOP ^. SIZE.X )THEN EXIT ;END ;IF (O1I10Ol1 <> 0 )OR (O1I1Il0I <> 0 )THEN IF (STATE AND
  113. SFVISIBLE <> 0 )THEN CHANGEBOUNDS (OIO1 )ELSE SETBOUNDS (OIO1 );INSERT (NEW (PBX3DTOOLBUTTON , INIT (OO1I , ATITLE ,
  114. ACOMMAND , 0 )));IF ISVERTICAL THEN LASTY := OO1I.B.Y ELSE LASTX := OO1I.B.X ;END ;PROCEDURE TBX3DTOOLBAR.INITFRAME ;
  115. BEGIN FRAME := NIL ;END ;PROCEDURE TBX3DTOOLBAR.SIZELIMITS (VAR MIN,MAX:TPOINT);BEGIN MIN := SIZE ;MAX := SIZE ;END ;
  116. PROCEDURE TBX3DTOOLBAR.STORE (VAR S:TSTREAM);BEGIN INHERITED STORE(S );S.WRITE (ISVERTICAL , SIZEOF (BOOLEAN ));S.WRITE
  117. (LASTX , SIZEOF (WORD ));S.WRITE (LASTY , SIZEOF (WORD ));END ;PROCEDURE REGISTERTV3D ;BEGIN REGISTERTYPE (RBX3DBUTTON );
  118. REGISTERTYPE (RBX3DOUTLINE );REGISTERTYPE (RBX3DHISTORY );REGISTERTYPE (RBX3DDIALOG );REGISTERTYPE (RBX3DTOOLBUTTON );
  119. REGISTERTYPE (RBX3DTOOLBAR );END ;END .
  120.